package com.tungse.copyExample;

import java.util.Arrays;
import java.util.Date;

/**
 * 浅拷贝创建一个新对象，新对象的属性值会复制原始对象的属性值。对于基本数据类型，会直接复制其值；
 * 而对于引用数据类型，只会复制引用，即新对象和原始对象中的引用数据类型属性指向同一个内存地址。
 * 这意味着如果修改其中一个对象的引用类型属性所指向的对象内容，另一个对象的相应属性也会受到影响。
 */
public class 浅拷贝 {
    public static void main(String[] args) throws CloneNotSupportedException {
        Person person1 = new Person("Alice", 2000, new Address("西安"));
        Person person2 = (Person) person1.clone();

        System.out.println(person1);
        System.out.println(person2);

        // 修改 person2 的属性
        person2.setName("Bob");
        person2.setAge(2500);
        person2.getAddress().setCity("北京");

        System.out.println("After modification:");
        System.out.println(person1);
        System.out.println(person2);
    }



}
